# O seguinte script contém as fases de estruturação e análise do Banco de Dados Legislativos do NECI/CEBRAP. Os datasets utilizados, assim como os codebooks, estão 
# disponíveis no site https://bancodedadoslegislativos.com.br/downloads.php .

# O script está divido em nove seções, contendo o cálculo do índice de performance legislativa por quórum das votações nominais (simples, qualificado e absoluto) e 
# por agrupamento de partidos (mandato, coalizão e oposição). Os gráficos, estatisticas descritivas, tabelas e testes de hipótese (nos anexos) do artigo foram 
# calculados para cada um dos recortes de quórum e agrupamento de partidos: 1) IPL quórum qualificado; 2) IPL quórum simples; 3) IPL quórum absoluto; 4) IPLC quórum
# qualificado; 5) IPLC quórum simples; 6) IPLC quórum absoluto; 7) IPLO quórum qualificado; 8) IPLO quórum simples; e 9) IPLO quórum absoluto. 





###################################################   Performance legislativa por MANDATO (Votações de Maioria Qualificada - Aprovação SS) #################################################

#Definindo diretório:

diretorio <- "INSERIR DIRETORIO DO BANCO DE DADOS"

setwd("diretorio/")

#Instalando e Carregando pacotes

pacotes <- c("janitor", "vtree", "readxl", "readr", "dplyr", "tidyr", "formattable", "lubridate")
for (p in pacotes) {
  if (!require(p, character.only = TRUE)) install.packages(p, dependencies = TRUE)
  library(p, character.only = TRUE)
}



######## Estabelecendo diretório e chamando pacotes:

diretorio <- "INSERIR DIRETORIO DO BANCO DE DADOS"

setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS)

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)





####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]



######## Total de votos em votações de Maioria Qualificada (2)

denominador_quorum_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_qualificada <- denominador_quorum_qualificada %>% rename("tot_votos_qualificada" = "n")

denominador_quorum_qualificada



######## Qúorum das votações de Maioria absoluta

denominador_quorum_qualificada <- mutate (denominador_quorum_qualificada, q_qualificada = 308)


denominador_quorum_qualificada



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_qualificada



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_qualificada_D <- vot_dep_fed_part_gov_qualificada [vot_dep_fed_part_gov_qualificada $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_qualificada_D




######## Retirando missings


vot_dep_fed_part_gov_qualificada_D <- na.omit(vot_dep_fed_part_gov_qualificada_D, sort = TRUE)

vot_dep_fed_part_gov_qualificada_D




######## Calculando o índice por partido


performance_qualificada_D <- left_join(vot_dep_fed_part_gov_qualificada_D, denominador_quorum_qualificada, by = c("Id_Votacao" = "Id_Votacao"))


performance_qualificada_D <- select(performance_qualificada_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_qualificada_D <-mutate (performance_qualificada_D, performance_Q = (performance_qualificada_D$n/q_qualificada))

performance_qualificada_D



######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_Q ~ Id_Votacao, data = performance_qualificada_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_qualificada_D, by = c("Id_Votacao" = "Id_Votacao"))


#Retirar duplicadas por ID

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.6, 1.6,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))


performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)


performance_votação_graf_3 


######## Salvando tabela com o número de votações por mandato


table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS <-table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS_x <- as.data.frame (Quantidade_de_votações_qualificada_SS)

glimpse (performance_votação_graf_3)




######## Tabela cruzada Mandato x Governabilidade da votação 


performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)


tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)




### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr





### Gráfico de Linhas e Pontos com Valores Contínuo da performance legislativa


rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
    labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,1.7))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr2




######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_1_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim = c(0,1.7))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))

graf_1_performance_legislativa






#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test


resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)



rm(list = ls())
















###################################################   Performance legislativa por MANDATO (Votações de Maioria Simples) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )


#table (orientacoes_votos_lideres$Voto)


######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)

table (votos_deputados_federais_orientacoes_lideres$Voto_Deputado_x_Voto_lider)

######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)





####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_simples )








######## Total de votos em votações de Maioria simples (0)


votos_deputados_federais_simples_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "0", ]

glimpse(votos_deputados_federais_simples_denominador)
table (votos_deputados_federais_simples_denominador$Voto)


votos_deputados_federais_simples_denominador_S <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "S", ]
votos_deputados_federais_simples_denominador_N <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "N", ]
votos_deputados_federais_simples_denominador_A <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "A", ]

votos_deputados_federais_simples_denominador <-bind_rows (votos_deputados_federais_simples_denominador_S,
                                                          votos_deputados_federais_simples_denominador_N,
                                                          votos_deputados_federais_simples_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_simples_denominador$Data <- as.Date(votos_deputados_federais_simples_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_simples_denominador <- subset(votos_deputados_federais_simples_denominador, Data <= data_final)

table (votos_deputados_federais_simples_denominador$Ano)





denominador_quorum_simples <- votos_deputados_federais_simples_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_simples <- denominador_quorum_simples %>% rename("tot_votos_simples" = "n")

denominador_quorum_simples





######## Qúorum das votações de Maioria simples

denominador_quorum_simples <- mutate (denominador_quorum_simples, q_simples = ((denominador_quorum_simples$tot_votos_simples/2)))

denominador_quorum_simples


denominador_quorum_simples <- denominador_quorum_simples %>%
  mutate(q_simples2 = ifelse(q_simples %% 1 == 0, q_simples + 1, q_simples + 0.5))

denominador_quorum_simples



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_simples <- votos_deputados_federais_simples %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_simples



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_simples_D <- vot_dep_fed_part_gov_simples [vot_dep_fed_part_gov_simples $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_simples_D



######## Retirando missings


vot_dep_fed_part_gov_simples_D <- na.omit(vot_dep_fed_part_gov_simples_D, sort = TRUE)

vot_dep_fed_part_gov_simples_D





######## Calculando o índice por partido


performance_simples_D <- left_join(vot_dep_fed_part_gov_simples_D, denominador_quorum_simples, by = c("Id_Votacao" = "Id_Votacao"))


performance_simples_D <- select(performance_simples_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_simples_D <-mutate (performance_simples_D, performance_S = (performance_simples_D$n/q_simples2))

performance_simples_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_S ~ Id_Votacao, data = performance_simples_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_simples_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2



summary (performance_votação_graf_2$performance_por_votação)



######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)


tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)








### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr




### Gráfico de Linhas e Pontos com Valores Contínuo

library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr2









######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_2_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_2_performance_legislativa





#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)


rm(list = ls())















###################################################   Performance legislativa por MANDATO (Votações de Maioria Absoluta) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)







####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_absoluta )











######## Total de votos em votações de Maioria Absoluta (0)


votos_deputados_federais_absoluta_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "1", ]

glimpse(votos_deputados_federais_absoluta_denominador)
table (votos_deputados_federais_absoluta_denominador$Voto)


votos_deputados_federais_absoluta_denominador_S <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "S", ]
votos_deputados_federais_absoluta_denominador_N <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "N", ]
votos_deputados_federais_absoluta_denominador_A <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "A", ]

votos_deputados_federais_absoluta_denominador <-bind_rows (votos_deputados_federais_absoluta_denominador_S,
                                                           votos_deputados_federais_absoluta_denominador_N,
                                                           votos_deputados_federais_absoluta_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_absoluta_denominador$Data <- as.Date(votos_deputados_federais_absoluta_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_absoluta_denominador <- subset(votos_deputados_federais_absoluta_denominador, Data <= data_final)

table (votos_deputados_federais_absoluta_denominador$Ano)






denominador_quorum_absoluta <- votos_deputados_federais_absoluta_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_absoluta <- denominador_quorum_absoluta %>% rename("tot_votos_absoluta" = "n")

denominador_quorum_absoluta





######## Qúorum das votações de Maioria absoluta

denominador_quorum_absoluta <- mutate (denominador_quorum_absoluta, q_absoluta = ((denominador_quorum_absoluta$tot_votos_absoluta/2)))

denominador_quorum_absoluta

# Soma 1 em números inteiros e 0.5 em números decimais na variável q_absoluta

denominador_quorum_absoluta <- denominador_quorum_absoluta %>%
  mutate(q_absoluta2 = ifelse(q_absoluta %% 1 == 0, q_absoluta + 1, q_absoluta + 0.5))

denominador_quorum_absoluta



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_absoluta <- votos_deputados_federais_absoluta %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_absoluta



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_absoluta_D <- vot_dep_fed_part_gov_absoluta [vot_dep_fed_part_gov_absoluta $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_absoluta_D



######## Retirando missings


vot_dep_fed_part_gov_absoluta_D <- na.omit(vot_dep_fed_part_gov_absoluta_D, sort = TRUE)

vot_dep_fed_part_gov_absoluta_D





######## Calculando o índice por partido


performance_absoluta_D <- left_join(vot_dep_fed_part_gov_absoluta_D, denominador_quorum_absoluta, by = c("Id_Votacao" = "Id_Votacao"))


performance_absoluta_D <- select(performance_absoluta_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_absoluta_D <-mutate (performance_absoluta_D, performance_A = (performance_absoluta_D$n/q_absoluta2))

performance_absoluta_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_A ~ Id_Votacao, data = performance_absoluta_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_absoluta_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2 $ performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                               ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $ mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                            labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)




######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)


tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)









### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr




### Gráfico de Linhas e Pontos com Valores Contínuo



library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))




rr2






######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_3_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_3_performance_legislativa









#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)


rm(list = ls())






###################################################   Performance legislativa da COALIZÃO (Votações de Maioria Qualificada - Aprovação SS) #################################################



######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS)





######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 1, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)






######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)






####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]













######## Total de votos em votações de Maioria Qualificada (2)

denominador_quorum_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_qualificada <- denominador_quorum_qualificada %>% rename("tot_votos_qualificada" = "n")

denominador_quorum_qualificada



######## Qúorum das votações de Maioria absoluta

denominador_quorum_qualificada <- mutate (denominador_quorum_qualificada, q_qualificada = 308)


denominador_quorum_qualificada



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_qualificada



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_qualificada_D <- vot_dep_fed_part_gov_qualificada [vot_dep_fed_part_gov_qualificada $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_qualificada_D




######## Retirando missings


vot_dep_fed_part_gov_qualificada_D <- na.omit(vot_dep_fed_part_gov_qualificada_D, sort = TRUE)

vot_dep_fed_part_gov_qualificada_D




######## Calculando o índice por partido


performance_qualificada_D <- left_join(vot_dep_fed_part_gov_qualificada_D, denominador_quorum_qualificada, by = c("Id_Votacao" = "Id_Votacao"))


performance_qualificada_D <- select(performance_qualificada_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_qualificada_D <-mutate (performance_qualificada_D, performance_Q = (performance_qualificada_D$n/q_qualificada))

performance_qualificada_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_Q ~ Id_Votacao, data = performance_qualificada_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_qualificada_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes  



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.6, 1.6,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)


performance_votação_graf_3 


######## Salvando tabela com o número de votações por mandato


table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS <-table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS_x <- as.data.frame (Quantidade_de_votações_qualificada_SS)

glimpse (performance_votação_graf_3)





######## Tabela cruzada Mandato x Governabilidade da votação 


performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)







### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr




### Gráfico de Linhas e Pontos com Valores Contínuo da performance legislativa

library(ggplot2)


rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,1.7))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr2





######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_1_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim = c(0,1.7))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))

graf_1_performance_legislativa




#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)




rm(list = ls())








###################################################   Performance legislativa da COALIZÃO (Votações de Maioria Simples) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )


#table (orientacoes_votos_lideres$Voto)


######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)

table (votos_deputados_federais_orientacoes_lideres$Voto_Deputado_x_Voto_lider)

######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)



######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 1, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)





######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

table (votos_deputados_federais_orientacoes_lideres_D_2$Ano)










####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_simples )













######## Total de votos em votações de Maioria simples (0)


votos_deputados_federais_simples_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "0", ]

glimpse(votos_deputados_federais_simples_denominador)
table (votos_deputados_federais_simples_denominador$Voto)


votos_deputados_federais_simples_denominador_S <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "S", ]
votos_deputados_federais_simples_denominador_N <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "N", ]
votos_deputados_federais_simples_denominador_A <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "A", ]

votos_deputados_federais_simples_denominador <-bind_rows (votos_deputados_federais_simples_denominador_S,
                                                          votos_deputados_federais_simples_denominador_N,
                                                          votos_deputados_federais_simples_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_simples_denominador$Data <- as.Date(votos_deputados_federais_simples_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_simples_denominador <- subset(votos_deputados_federais_simples_denominador, Data <= data_final)

table (votos_deputados_federais_simples_denominador$Ano)





denominador_quorum_simples <- votos_deputados_federais_simples_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_simples <- denominador_quorum_simples %>% rename("tot_votos_simples" = "n")

denominador_quorum_simples





######## Qúorum das votações de Maioria simples

denominador_quorum_simples <- mutate (denominador_quorum_simples, q_simples = ((denominador_quorum_simples$tot_votos_simples/2)))

denominador_quorum_simples


denominador_quorum_simples <- denominador_quorum_simples %>%
  mutate(q_simples2 = ifelse(q_simples %% 1 == 0, q_simples + 1, q_simples + 0.5))

denominador_quorum_simples



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_simples <- votos_deputados_federais_simples %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_simples



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_simples_D <- vot_dep_fed_part_gov_simples [vot_dep_fed_part_gov_simples $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_simples_D



######## Retirando missings


vot_dep_fed_part_gov_simples_D <- na.omit(vot_dep_fed_part_gov_simples_D, sort = TRUE)

vot_dep_fed_part_gov_simples_D





######## Calculando o índice por partido


performance_simples_D <- left_join(vot_dep_fed_part_gov_simples_D, denominador_quorum_simples, by = c("Id_Votacao" = "Id_Votacao"))


performance_simples_D <- select(performance_simples_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_simples_D <-mutate (performance_simples_D, performance_S = (performance_simples_D$n/q_simples2))

performance_simples_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_S ~ Id_Votacao, data = performance_simples_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_simples_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2



summary (performance_votação_graf_2$performance_por_votação)



######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)











### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr





### Gráfico de Linhas e Pontos com Valores Contínuo

library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr2






######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_2_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_2_performance_legislativa





#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)



rm(list = ls())







###################################################   Performance legislativa da COALIZÃO (Votações de Maioria Absoluta) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)




######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 1, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)






######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)







####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_absoluta )











######## Total de votos em votações de Maioria Absoluta (0)


votos_deputados_federais_absoluta_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "1", ]

glimpse(votos_deputados_federais_absoluta_denominador)
table (votos_deputados_federais_absoluta_denominador$Voto)


votos_deputados_federais_absoluta_denominador_S <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "S", ]
votos_deputados_federais_absoluta_denominador_N <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "N", ]
votos_deputados_federais_absoluta_denominador_A <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "A", ]

votos_deputados_federais_absoluta_denominador <-bind_rows (votos_deputados_federais_absoluta_denominador_S,
                                                           votos_deputados_federais_absoluta_denominador_N,
                                                           votos_deputados_federais_absoluta_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_absoluta_denominador$Data <- as.Date(votos_deputados_federais_absoluta_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_absoluta_denominador <- subset(votos_deputados_federais_absoluta_denominador, Data <= data_final)

table (votos_deputados_federais_absoluta_denominador$Ano)






denominador_quorum_absoluta <- votos_deputados_federais_absoluta_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_absoluta <- denominador_quorum_absoluta %>% rename("tot_votos_absoluta" = "n")

denominador_quorum_absoluta





######## Qúorum das votações de Maioria absoluta

denominador_quorum_absoluta <- mutate (denominador_quorum_absoluta, q_absoluta = ((denominador_quorum_absoluta$tot_votos_absoluta/2)))

denominador_quorum_absoluta

# Soma 1 em números inteiros e 0.5 em números decimais na variável q_absoluta

denominador_quorum_absoluta <- denominador_quorum_absoluta %>%
  mutate(q_absoluta2 = ifelse(q_absoluta %% 1 == 0, q_absoluta + 1, q_absoluta + 0.5))

denominador_quorum_absoluta



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_absoluta <- votos_deputados_federais_absoluta %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_absoluta



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_absoluta_D <- vot_dep_fed_part_gov_absoluta [vot_dep_fed_part_gov_absoluta $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_absoluta_D



######## Retirando missings


vot_dep_fed_part_gov_absoluta_D <- na.omit(vot_dep_fed_part_gov_absoluta_D, sort = TRUE)

vot_dep_fed_part_gov_absoluta_D





######## Calculando o índice por partido


performance_absoluta_D <- left_join(vot_dep_fed_part_gov_absoluta_D, denominador_quorum_absoluta, by = c("Id_Votacao" = "Id_Votacao"))


performance_absoluta_D <- select(performance_absoluta_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_absoluta_D <-mutate (performance_absoluta_D, performance_A = (performance_absoluta_D$n/q_absoluta2))

performance_absoluta_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_A ~ Id_Votacao, data = performance_absoluta_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_absoluta_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2 $ performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                               ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $ mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                            labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)




######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)











### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey") +
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))

rr




### Gráfico de Linhas e Pontos com Valores Contínuo

library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr2









######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_3_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_3_performance_legislativa









#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)




rm(list = ls())




###################################################   Performance legislativa da OPOSIÇÃO (Votações de Maioria Qualificada - Aprovação SS) #################################################



######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS)





######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 0, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)






######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)






####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]













######## Total de votos em votações de Maioria Qualificada (2)

denominador_quorum_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_qualificada <- denominador_quorum_qualificada %>% rename("tot_votos_qualificada" = "n")

denominador_quorum_qualificada



######## Qúorum das votações de Maioria absoluta

denominador_quorum_qualificada <- mutate (denominador_quorum_qualificada, q_qualificada = 308)


denominador_quorum_qualificada



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_qualificada <- votos_deputados_federais_qualificada %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_qualificada



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_qualificada_D <- vot_dep_fed_part_gov_qualificada [vot_dep_fed_part_gov_qualificada $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_qualificada_D




######## Retirando missings


vot_dep_fed_part_gov_qualificada_D <- na.omit(vot_dep_fed_part_gov_qualificada_D, sort = TRUE)

vot_dep_fed_part_gov_qualificada_D




######## Calculando o índice por partido


performance_qualificada_D <- left_join(vot_dep_fed_part_gov_qualificada_D, denominador_quorum_qualificada, by = c("Id_Votacao" = "Id_Votacao"))


performance_qualificada_D <- select(performance_qualificada_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_qualificada_D <-mutate (performance_qualificada_D, performance_Q = (performance_qualificada_D$n/q_qualificada))

performance_qualificada_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_Q ~ Id_Votacao, data = performance_qualificada_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_qualificada_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.6, 1.6,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)


performance_votação_graf_3 


######## Salvando tabela com o número de votações por mandato


table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS <-table(performance_votação_graf_3 $ mandato)

Quantidade_de_votações_qualificada_SS_x <- as.data.frame (Quantidade_de_votações_qualificada_SS)

glimpse (performance_votação_graf_3)





######## Tabela cruzada Mandato x Governabilidade da votação 


performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)







### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr





### Gráfico de Linhas e Pontos com Valores Contínuo da performance legislativa

library(ggplot2)




rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,1.7))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr2




######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_1_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim = c(0,1.7))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))

graf_1_performance_legislativa




#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)




rm(list = ls())








###################################################   Performance legislativa da OPOSIÇÃO (Votações de Maioria Simples) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )


#table (orientacoes_votos_lideres$Voto)


######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)

table (votos_deputados_federais_orientacoes_lideres$Voto_Deputado_x_Voto_lider)

######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)



######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 0, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)





######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

table (votos_deputados_federais_orientacoes_lideres_D_2$Ano)










####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_simples )













######## Total de votos em votações de Maioria simples (0)


votos_deputados_federais_simples_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "0", ]

glimpse(votos_deputados_federais_simples_denominador)
table (votos_deputados_federais_simples_denominador$Voto)


votos_deputados_federais_simples_denominador_S <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "S", ]
votos_deputados_federais_simples_denominador_N <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "N", ]
votos_deputados_federais_simples_denominador_A <- votos_deputados_federais_simples_denominador [votos_deputados_federais_simples_denominador $ Voto == "A", ]

votos_deputados_federais_simples_denominador <-bind_rows (votos_deputados_federais_simples_denominador_S,
                                                          votos_deputados_federais_simples_denominador_N,
                                                          votos_deputados_federais_simples_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_simples_denominador$Data <- as.Date(votos_deputados_federais_simples_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_simples_denominador <- subset(votos_deputados_federais_simples_denominador, Data <= data_final)

table (votos_deputados_federais_simples_denominador$Ano)





denominador_quorum_simples <- votos_deputados_federais_simples_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_simples <- denominador_quorum_simples %>% rename("tot_votos_simples" = "n")

denominador_quorum_simples





######## Qúorum das votações de Maioria simples

denominador_quorum_simples <- mutate (denominador_quorum_simples, q_simples = ((denominador_quorum_simples$tot_votos_simples/2)))

denominador_quorum_simples


denominador_quorum_simples <- denominador_quorum_simples %>%
  mutate(q_simples2 = ifelse(q_simples %% 1 == 0, q_simples + 1, q_simples + 0.5))

denominador_quorum_simples



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_simples <- votos_deputados_federais_simples %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_simples



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_simples_D <- vot_dep_fed_part_gov_simples [vot_dep_fed_part_gov_simples $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_simples_D



######## Retirando missings


vot_dep_fed_part_gov_simples_D <- na.omit(vot_dep_fed_part_gov_simples_D, sort = TRUE)

vot_dep_fed_part_gov_simples_D





######## Calculando o índice por partido


performance_simples_D <- left_join(vot_dep_fed_part_gov_simples_D, denominador_quorum_simples, by = c("Id_Votacao" = "Id_Votacao"))


performance_simples_D <- select(performance_simples_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_simples_D <-mutate (performance_simples_D, performance_S = (performance_simples_D$n/q_simples2))

performance_simples_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_S ~ Id_Votacao, data = performance_simples_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_simples_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes 



performance_votação_graf_2$performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                             ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2



summary (performance_votação_graf_2$performance_por_votação)



######## Criando os clusters por mandato



performance_votação_graf_2 $mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                           labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)



######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)










### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


rr




### Gráfico de Linhas e Pontos com Valores Contínuo

library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr2






######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_2_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "Votações com Qúorum de Maioria Simples na Câmara dos Deputados (1994 a 2016)",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_2_performance_legislativa





#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)




rm(list = ls())









###################################################   Performance legislativa da OPOSIÇÃO (Votações de Maioria Absoluta) #################################################







######## Estabelecendo diretório e chamando pacotes:



setwd("diretorio/")

library(janitor)
library(vtree)
library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(formattable)
library(lubridate)


######## Abrindo base do NECI das  votações dos deputados:


votos_deputados_federais  <- read.csv("diretorio/votos_deputados_federais.csv")

# Adicionando coluna ano

votos_deputados_federais$Ano <- year (as.Date (votos_deputados_federais$Data, format = "%Y-%m-%d"))

glimpse(votos_deputados_federais)


######## Abrindo base do NECI sobre as matérias das votações:

votacoes_nominais_cd      <- read_excel("diretorio/votacoes_nominais_cd.xlsx")


######## Abrindo base do NECI sobre as orientações das votações dos líderes:


orientacoes_votos_lideres <- read.csv ("diretorio/orientacoes_votos_lideres.csv")

glimpse(orientacoes_votos_lideres)

orientacoes_votos_lideres <- select(votos_deputados_federais, - X, -Data, - Quorum_Exigido, -Tipo_Votacao, -Procedimento, -Tipo_Projeto, -Projano,
                                    -Assunto,  )



######## Juntando bases votos_deputados_federais e orientacoes_votos_lideres


votos_deputados_federais <-  unite  (votos_deputados_federais, Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)


orientacoes_votos_lideres <-  unite (orientacoes_votos_lideres,Id_Votacao, Nome_Completo, col = "Id_Votacao_x_Nome_Completo",sep = " ", remove = FALSE,na.rm = FALSE)



votos_deputados_federais_orientacoes_lideres <- left_join(votos_deputados_federais, orientacoes_votos_lideres, by = c("Id_Votacao_x_Nome_Completo" = "Id_Votacao_x_Nome_Completo"))


glimpse(votos_deputados_federais_orientacoes_lideres)



######### Renomear variáveis



names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.x"] <- "Id_Votacao"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.x"] <- "ID"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.x"] <- "NomeP"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.x"] <- "Nome_Completo"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.x"] <- "Data_Nasc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.x"] <- "N_TSE"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.x"] <- "Sigla_Partido"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.x"] <- "Nome_Partido"  

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.x"] <- "Coalizao_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.x"] <- "Voto_Deputado"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.x"] <- "Ind_Disc"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.x"] <- "Ind_Disc_GOV"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.x"] <- "Ano"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Id_Votacao.y"] <- "Id_Votacao_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "ID.y"] <- "ID_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "NomeP.y"] <- "NomeP_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Completo.y"] <- "Nome_Completo_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Data_Nasc.y"] <- "Data_Nasc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "N_TSE.y"] <- "N_TSE_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Sigla_Partido.y"] <- "Sigla_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Nome_Partido.y"] <- "Nome_Partido_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Coalizao_GOV.y"] <- "Coalizao_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Voto.y"] <- "Voto_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc.y"] <- "Ind_Disc_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ind_Disc_GOV.y"] <- "Ind_Disc_GOV_lider"

names(votos_deputados_federais_orientacoes_lideres)[names(votos_deputados_federais_orientacoes_lideres) == "Ano.y"] <- "Ano_lider"



glimpse(votos_deputados_federais_orientacoes_lideres)



######### Criar variável juntando "Voto_Deputado" e "Voto_lider"



votos_deputados_federais_orientacoes_lideres <-  unite  (votos_deputados_federais_orientacoes_lideres, Voto_Deputado, Voto_lider, col = "Voto_Deputado_x_Voto_lider",sep = "", remove = FALSE,na.rm = FALSE)



######## Selecionando os votos disciplinados "D" e retirando obstruções



votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres [votos_deputados_federais_orientacoes_lideres$Ind_Disc_GOV == "D", ]



# lidando com NA

votos_deputados_federais_orientacoes_lideres_D <- votos_deputados_federais_orientacoes_lideres_D %>%
  filter_all(any_vars(!is.na(.)))



glimpse(votos_deputados_federais_orientacoes_lideres_D)



# Selecionando combinações de Voto_Deputado e Voto Líder (retirando as linhas "ON" e "OO")


votos_deputados_federais_orientacoes_lideres_D_SS <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "SS", ]
votos_deputados_federais_orientacoes_lideres_D_NN <- votos_deputados_federais_orientacoes_lideres_D [votos_deputados_federais_orientacoes_lideres_D$Voto_Deputado_x_Voto_lider == "NN", ]



votos_deputados_federais_orientacoes_lideres_D_2 <-bind_rows (votos_deputados_federais_orientacoes_lideres_D_SS,
                                                              votos_deputados_federais_orientacoes_lideres_D_NN)                                        

glimpse(votos_deputados_federais_orientacoes_lideres_D_2)




######### Selecionando apenas votos de partidos da coalizão

votos_deputados_federais_orientacoes_lideres_D_2 <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2$ Coalizao_GOV  == 0, ]



glimpse(votos_deputados_federais_orientacoes_lideres_D_2)






######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_orientacoes_lideres_D_2$Data <- as.Date(votos_deputados_federais_orientacoes_lideres_D_2$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_orientacoes_lideres_D_2 <- subset(votos_deputados_federais_orientacoes_lideres_D_2, Data <= data_final)

summary (votos_deputados_federais_orientacoes_lideres_D_2$Ano)







####### Tipos de qúorum: Maioria Simples (0), Maioria Absoluta (1) e Maioria Qualificada (2)


votos_deputados_federais_simples     <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "0", ]


votos_deputados_federais_absoluta    <- votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "1", ]


votos_deputados_federais_qualificada <-votos_deputados_federais_orientacoes_lideres_D_2 [votos_deputados_federais_orientacoes_lideres_D_2 $ Quorum_Exigido == "2", ]




glimpse(votos_deputados_federais_absoluta )











######## Total de votos em votações de Maioria Absoluta (0)


votos_deputados_federais_absoluta_denominador <- votos_deputados_federais [votos_deputados_federais $ Quorum_Exigido == "1", ]

glimpse(votos_deputados_federais_absoluta_denominador)
table (votos_deputados_federais_absoluta_denominador$Voto)


votos_deputados_federais_absoluta_denominador_S <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "S", ]
votos_deputados_federais_absoluta_denominador_N <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "N", ]
votos_deputados_federais_absoluta_denominador_A <- votos_deputados_federais_absoluta_denominador [votos_deputados_federais_absoluta_denominador $ Voto == "A", ]

votos_deputados_federais_absoluta_denominador <-bind_rows (votos_deputados_federais_absoluta_denominador_S,
                                                           votos_deputados_federais_absoluta_denominador_N,
                                                           votos_deputados_federais_absoluta_denominador_A)



######### Selecionando dados até Dilma 2 30 de agosto de 2016 ('30/08/2016') 


votos_deputados_federais_absoluta_denominador$Data <- as.Date(votos_deputados_federais_absoluta_denominador$Data)

data_final <- as.Date('2016-08-30')

votos_deputados_federais_absoluta_denominador <- subset(votos_deputados_federais_absoluta_denominador, Data <= data_final)

table (votos_deputados_federais_absoluta_denominador$Ano)






denominador_quorum_absoluta <- votos_deputados_federais_absoluta_denominador %>%
  count(Id_Votacao, Data, Projano, Tipo_Projeto, Quorum_Exigido, sort = TRUE)

denominador_quorum_absoluta <- denominador_quorum_absoluta %>% rename("tot_votos_absoluta" = "n")

denominador_quorum_absoluta





######## Qúorum das votações de Maioria absoluta

denominador_quorum_absoluta <- mutate (denominador_quorum_absoluta, q_absoluta = ((denominador_quorum_absoluta$tot_votos_absoluta/2)))

denominador_quorum_absoluta

# Soma 1 em números inteiros e 0.5 em números decimais na variável q_absoluta

denominador_quorum_absoluta <- denominador_quorum_absoluta %>%
  mutate(q_absoluta2 = ifelse(q_absoluta %% 1 == 0, q_absoluta + 1, q_absoluta + 0.5))

denominador_quorum_absoluta



######## Quantidade de votos por partido e disciplina ao governo 


vot_dep_fed_part_gov_absoluta <- votos_deputados_federais_absoluta %>%
  count(Id_Votacao, Ano, Data, Projano, Tipo_Projeto, Quorum_Exigido, Coalizao_GOV, Sigla_Partido, Ind_Disc_GOV, sort = TRUE)

vot_dep_fed_part_gov_absoluta



######## Selecionando disciplinados por partido


vot_dep_fed_part_gov_absoluta_D <- vot_dep_fed_part_gov_absoluta [vot_dep_fed_part_gov_absoluta $ Ind_Disc_GOV == "D", ]

vot_dep_fed_part_gov_absoluta_D



######## Retirando missings


vot_dep_fed_part_gov_absoluta_D <- na.omit(vot_dep_fed_part_gov_absoluta_D, sort = TRUE)

vot_dep_fed_part_gov_absoluta_D





######## Calculando o índice por partido


performance_absoluta_D <- left_join(vot_dep_fed_part_gov_absoluta_D, denominador_quorum_absoluta, by = c("Id_Votacao" = "Id_Votacao"))


performance_absoluta_D <- select(performance_absoluta_D, -Data.y,	-Projano.y,	-Tipo_Projeto.y, -Quorum_Exigido.y)

performance_absoluta_D <-mutate (performance_absoluta_D, performance_A = (performance_absoluta_D$n/q_absoluta2))

performance_absoluta_D


######## Calculando o índice por votação (Id_Votacao)


performance_votação <- aggregate(performance_A ~ Id_Votacao, data = performance_absoluta_D, sum)

names(performance_votação)[2] <- "performance_por_votação"

performance_votação


performance_votação_graf <- left_join (performance_votação, performance_absoluta_D, by = c("Id_Votacao" = "Id_Votacao"))

#Retirar duplicadas por ID 

performance_votação_graf_2 <- subset(performance_votação_graf, !duplicated(performance_votação_graf$Id_Votacao))




######## Criando nova variável de performance legislativa que elimine votações unânimes



performance_votação_graf_2 $ performance_por_votação <- ifelse(performance_votação_graf_2$performance_por_votação > 1.9, 1.9,
                                                               ifelse(performance_votação_graf_2$performance_por_votação < 0, 0, performance_votação_graf_2$performance_por_votação))
performance_votação_graf_2


######## Criando os clusters por mandato



performance_votação_graf_2 $ mandato <- cut(performance_votação_graf_2 $Ano, breaks = c(1988,1989, 1992, 1994, 1998, 2002, 2006, 2010, 2014,2016), 
                                            labels = c("Sarney", "Collor", "Franco", "FHC 1", "FHC 2", "Lula 1", "Lula 2", "Dilma 1", "Dilma 2"))




performance_votação_graf_2 

table(performance_votação_graf_2 $mandato)





# Selecionando mandatos


performance_votação_graf_2_fhc1   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 1", ]
performance_votação_graf_2_fhc2   <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "FHC 2", ]
performance_votação_graf_2_lula1  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 1", ]
performance_votação_graf_2_lula2  <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Lula 2", ]
performance_votação_graf_2_Dilma1 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 1", ]
performance_votação_graf_2_Dilma2 <- performance_votação_graf_2  [performance_votação_graf_2  $ mandato == "Dilma 2", ]


performance_votação_graf_3 <-bind_rows (performance_votação_graf_2_fhc1,
                                        performance_votação_graf_2_fhc2,
                                        performance_votação_graf_2_lula1,
                                        performance_votação_graf_2_lula2,
                                        performance_votação_graf_2_Dilma1,
                                        performance_votação_graf_2_Dilma2)

performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)


######## Retirando missings


performance_votação_graf_3 <- na.omit(performance_votação_graf_3, sort = TRUE)



performance_votação_graf_3 

table(performance_votação_graf_3 $ mandato)




######### Tabela cruzada Mandato x Governabilidade da votação 

performance_votação_graf_3 $governabilidade_votação <- cut(performance_votação_graf_3 $performance_por_votação, breaks = c(0,0.3, 0.99, 1.1, 2), 
                                                           labels = c("Paralisia Decisória", "Governo Minoritário", "Coalizão Minimamente Vencedora", "Governo Majoritário"))


table (performance_votação_graf_3 $governabilidade_votação)

tabela_cruzada <- table(performance_votação_graf_3 $mandato, performance_votação_graf_3 $governabilidade_votação)



tabela_cruzada

tabela_cruzada <- as.data.frame (tabela_cruzada)










### Histograma de densidade

library(ggplot2)


rr <- ggplot(performance_votação_graf_3, aes(x = performance_por_votação, fill = mandato, color = mandato)) +
  geom_density(alpha = 0.5) +
  labs(title = "",
       x = "Índice de Performance Legislativa",
       y = "Densidade",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  geom_vline(xintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey")+
  geom_vline(xintercept = 1.16, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA)) 

rr



### Gráfico de Linhas e Pontos com Valores Contínuo

library(ggplot2)

rr2 <- ggplot(performance_votação_graf_3, aes(x = Data.x , y = performance_por_votação, color = mandato, group = mandato)) +
  geom_point() +
  geom_line() +
  labs(title = "",
       x = "Data",
       y = "Índice de Performance Legislativa",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI") +
  theme_minimal()+
  coord_cartesian(ylim= c(0,2))+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey") +
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))



rr2





######## Boxplots da performance legislativa por mandato


library(ggplot2)

graf_3_performance_legislativa <- ggplot(performance_votação_graf_3 , aes(x = mandato, y = performance_por_votação, fill = mandato )) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "",
       subtitle = "",
       caption = "Elaborado pelso autores, a partir da Base de Dados Legislativos do NECI",
       x = "Mandato",
       y = "Índice de Performance Legislativa")+
  coord_cartesian(ylim= c(0,2))+
  scale_fill_brewer(palette = "Set3")+
  scale_fill_brewer(palette = "Set3")+
  geom_hline(yintercept = 0.3, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1, linetype = "dashed", color = "grey")+
  geom_hline(yintercept = 1.1, linetype = "dashed", color = "grey")+
  theme(panel.background = element_rect(fill = "white", color = NA),
        plot.background = element_rect(fill = "white", color = NA))


graf_3_performance_legislativa








#Estatítistcas descritivas


summary (performance_votação_graf_2_fhc1$performance_por_votação)
summary (performance_votação_graf_2_fhc2$performance_por_votação)
summary (performance_votação_graf_2_lula1$performance_por_votação)
summary (performance_votação_graf_2_lula2$performance_por_votação)
summary (performance_votação_graf_2_Dilma1$performance_por_votação)
summary (performance_votação_graf_2_Dilma2$performance_por_votação)





sd (performance_votação_graf_2_fhc1$performance_por_votação)
sd (performance_votação_graf_2_fhc2$performance_por_votação)
sd (performance_votação_graf_2_lula1$performance_por_votação)
sd (performance_votação_graf_2_lula2$performance_por_votação)
sd (performance_votação_graf_2_Dilma1$performance_por_votação)
sd (performance_votação_graf_2_Dilma2$performance_por_votação)





######## Teste de normalidade da amostra

shapiro.test(performance_votação_graf_3$performance_por_votação)


######## ANOVA e Tuckey's test

resultado_anova <- oneway.test(performance_por_votação ~ mandato, data = performance_votação_graf_3)

print(resultado_anova)


post_hoc_tukey <- TukeyHSD(aov(performance_votação_graf_3$performance_por_votação ~ performance_votação_graf_3$mandato))

post_hoc_tukey

plot(post_hoc_tukey)




rm(list = ls())














